/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.dinotrack.struts;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;

/**
 *
 * @author Albertina Durante, Matías Martínez Blanquier, Flavio Peralta, Jéssica Luz Villarreal.
 */
public class RegisterForm extends org.apache.struts.action.ActionForm {

    private String usuario;
    private String contrasenia;
    private String reContrasenia;
    private String nombre;
    private String apellido;
    private String email;
    private String mensaje;
    private StringBuilder inf;
    private int tipoMensaje;
    public final static int INIT_MESSAGE = 0;
    public final static int ERROR_MESSAGE = 1;
    public final static int DB_ERROR_MESSAGE = 2;
    public final static int SUCCESS_MESSAGE = 3;

    /**
     *
     */
    public RegisterForm() {
        super();
        inf=new StringBuilder();
        tipoMensaje=INIT_MESSAGE;
        // TODO Auto-generated constructor stub
    }

    /**
     * @return the usuario
     */
    public String getUsuario() {
        return usuario;
    }

    /**
     * @param usuario the usuario to set
     */
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    /**
     * @return the contrasenia
     */
    public String getContrasenia() {
        return contrasenia;
    }

    /**
     * @param contrasenia the contrasenia to set
     */
    public void setContrasenia(String contrasenia) {
        this.contrasenia = contrasenia;
    }

    /**
     * @return the reContrasenia
     */
    public String getReContrasenia() {
        return reContrasenia;
    }

    /**
     * @param reContrasenia the reContrasenia to set
     */
    public void setReContrasenia(String reContrasenia) {
        this.reContrasenia = reContrasenia;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the apellido
     */
    public String getApellido() {
        return apellido;
    }

    /**
     * @param apellido the apellido to set
     */
    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the error
     */
    public String getMensaje() {
        switch(tipoMensaje)
        {
            case INIT_MESSAGE:
                    this.mensaje =  "<span> Ingrese sus datos aquí! </span>";
                break;
            
            case ERROR_MESSAGE:
                    this.mensaje =
                        "<span style='color:red'>Error! Ingrese los datos solicitados: "+inf+"</span>";
                break;
                
            case DB_ERROR_MESSAGE:
                    this.mensaje =
                        "<span style='color:red'> Error de la base de datos! </span>";
                break;
                
            case SUCCESS_MESSAGE:
                    this.mensaje =  "<span style='color:green'> Usted se ha registrado exitosamente! </span>";
                break;
        }
        
        return mensaje;
    }

    /**
     * @param the error to set
     */
    public void setMensaje(String error) {
        inf.append("* "+error+"\n");
    }
    
    
    /**
     * @return the tipoMensaje
     */
    public int getTipoMensaje() {
        return tipoMensaje;
    }

    /**
     * @param tipoMensaje the tipoMensaje to set
     */
    public void setTipoMensaje(int tipoMensaje) {
        this.tipoMensaje = tipoMensaje;
    }

    /**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param request The HTTP Request we are processing.
     * @return
     */
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        if (usuario == null || usuario.length() < 1) {
            errors.add("usuario", new ActionMessage("error.usuario.required"));
        }

        if (contrasenia == null || contrasenia.length() < 1) {
            errors.add("contraseña", new ActionMessage("error.contraseña.required"));
        }

        if (nombre == null || nombre.length() < 1) {
            errors.add("nombre", new ActionMessage("error.nombre.required"));
        }

        if (email == null || email.length() < 1) {
            errors.add("email", new ActionMessage("error.email.required"));
        }
        // TODO: add 'error.name.required' key to your resources

        return errors;
    }

    public void reset(ActionMapping mapping, HttpServletRequest request) {
        // reset properties
        usuario = "";
        contrasenia = "";
        nombre = "";
        email = "";
    }

}
